# Generated from Calc.g4 by ANTLR 4.7.2
from antlr4 import *
from io import StringIO
from typing.io import TextIO
import sys


def serializedATN():
    with StringIO() as buf:
        buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\13")
        buf.write("/\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7")
        buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\3\2\3\2\3\2\3\2\3\3\3\3\3\4\3")
        buf.write("\4\3\5\6\5\37\n\5\r\5\16\5 \3\6\6\6$\n\6\r\6\16\6%\3\7")
        buf.write("\3\7\3\b\3\b\3\t\3\t\3\n\3\n\2\2\13\3\3\5\4\7\5\t\6\13")
        buf.write("\7\r\b\17\t\21\n\23\13\3\2\4\4\2\f\f\17\17\3\2\62;\2\60")
        buf.write("\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13")
        buf.write("\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3")
        buf.write("\2\2\2\3\25\3\2\2\2\5\31\3\2\2\2\7\33\3\2\2\2\t\36\3\2")
        buf.write("\2\2\13#\3\2\2\2\r\'\3\2\2\2\17)\3\2\2\2\21+\3\2\2\2\23")
        buf.write("-\3\2\2\2\25\26\7g\2\2\26\27\7p\2\2\27\30\7f\2\2\30\4")
        buf.write("\3\2\2\2\31\32\7*\2\2\32\6\3\2\2\2\33\34\7+\2\2\34\b\3")
        buf.write("\2\2\2\35\37\t\2\2\2\36\35\3\2\2\2\37 \3\2\2\2 \36\3\2")
        buf.write("\2\2 !\3\2\2\2!\n\3\2\2\2\"$\t\3\2\2#\"\3\2\2\2$%\3\2")
        buf.write("\2\2%#\3\2\2\2%&\3\2\2\2&\f\3\2\2\2\'(\7,\2\2(\16\3\2")
        buf.write("\2\2)*\7\61\2\2*\20\3\2\2\2+,\7-\2\2,\22\3\2\2\2-.\7/")
        buf.write("\2\2.\24\3\2\2\2\5\2 %\2")
        return buf.getvalue()


class CalcLexer(Lexer):

    atn = ATNDeserializer().deserialize(serializedATN())

    decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]

    T__0 = 1
    T__1 = 2
    T__2 = 3
    NEWLINE = 4
    INT = 5
    MUL = 6
    DIV = 7
    ADD = 8
    SUB = 9

    channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]

    modeNames = [ "DEFAULT_MODE" ]

    literalNames = [ "<INVALID>",
            "'end'", "'('", "')'", "'*'", "'/'", "'+'", "'-'" ]

    symbolicNames = [ "<INVALID>",
            "NEWLINE", "INT", "MUL", "DIV", "ADD", "SUB" ]

    ruleNames = [ "T__0", "T__1", "T__2", "NEWLINE", "INT", "MUL", "DIV", 
                  "ADD", "SUB" ]

    grammarFileName = "Calc.g4"

    def __init__(self, input=None, output:TextIO = sys.stdout):
        super().__init__(input, output)
        self.checkVersion("4.7.2")
        self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
        self._actions = None
        self._predicates = None


